<?php

/**
 * Класс регистрации служит для регистрации новых пользователей
 * в системе.
 * У publishers и advertisers разные формы регистрации.
 */
class RegistrationController extends Zend_Controller_Action {

    public function indexAction() {
        
    }

    /**
     * Регистрация рекламодателя.
     * Записывает данные рекламодателя во временную
     * регистрационную таблицу 'temporary_advertisers'
     * и посылает на указанный им email письмо с подтверждающим кодом
     */
    public function advertiserAction() {
        $form = new Application_Form_Advertisers();
        $this->view->form = $form;
        $obj = new Application_Model_Registration();
        if ($this->getRequest()->isPost()) {
            $postData = $this->getRequest()->getPost();
            if ($form->isValid($postData)) {
                $data = array(
                    'url' => $url = mt_rand(),
                    'login' => $login = $form->getValue('username'),
                    'password' => md5($form->getValue('password')),
                    'email' => $email = $form->getValue('email'),
                    'phone' => $form->getValue('phone'),
                    'company_name' => $form->getValue('company'),
                    'website' => $form->getValue('site'),
                    'address' => $form->getValue('address'),
                    'id_role' => 3,
                    'id_spec_status' => 1,
                    'id_status' => 2,
                    'time' => time()
                );
                $login = $form->getValue('username');
                $password = $form->getValue('password');
                $email = $form->getValue('email');
                $obj->registerTemporaryAdver($data);
                $who = 2;
                $obj->sendEmail($login, $url, $email, $who);
                $this->_helper->redirector('mailconfirm', 'index');
            }
        }
    }

    /**
     * Регистрация публикатора.
     * Записывает данные публикатора во временную
     * регистрационную таблицу 'temporary_publishers'
     * и посылает на указанный им email письмо с подтверждающим кодом
     */
    public function publisherAction() {
        $form = new Application_Form_Publishers();
        $this->view->form = $form;
        $obj = new Application_Model_Registration();
        if ($this->getRequest()->isPost()) {
            $postData = $this->getRequest()->getPost();
            if ($form->isValid($postData)) {
                $data = array(
                    'url' => $url = mt_rand(),
                    'login' => $form->getValue('username'),
                    'password' => md5($form->getValue('password')),
                    'email' => $form->getValue('email'),
                    'phone' => $form->getValue('phone'),
                    'company_name' => $form->getValue('company'),
                    'website' => $form->getValue('site'),
                    'address' => $form->getValue('address'),
                    'id_role' => 2,
                    'id_spec_status' => 1,
                    'id_status' => 2,
                    'time' => time()
                );

                $login = $form->getValue('username');
                $password = $form->getValue('password');
                $email = $form->getValue('email');
                $obj->registerTemporaryPub($data);
                $who = 3;

                $obj->sendEmail($login, $password, $data['url'], $email, $who);
                $this->_helper->redirector('mailconfirm', 'index');
                var_dump($data);
            }
        }
    }

    /**
     * Подтверждение регистрации рекламодателя.
     * Считывает ссылку, которую мы передали в письме
     * если переданный параметр правильный - удаляем
     * данных из временной таблицы 'temporary_advertisers'
     * и заносим их в таблицу 'advertisers' 
     */
    public function confirmadverAction() {
        $url = $this->_getParam('param');
        $obj = new Application_Model_Registration();
        $check = $obj->checkConfirmAdver($url);
        if ($check != null) {
            $data = array(
                'login' => $check['login'],
                'password' => $check['password'],
                'email' => $check['email'],
                'phone' => $check['phone'],
                'company_name' => $check['company_name'],
                'website' => $check['website'],
                'address' => $check['address'],
                'id_role' => $check['id_role'],
                'id_spec_status' => $check['id_spec_status'],
                'id_status' => $check['id_status']
            );
            $obj->registerAdver($data);
            $obj->deleteTemporaryAdver($url);
            $this->_helper->redirector('successconfirmadver', 'registration');
        }
    }

    /**
     * Подтверждение регистрации публикатора.
     * Считывает ссылку, которую мы передали в письме
     * если переданный параметр правильный - удаляем
     * данных из временной таблицы 'temporary_publishers'
     * и заносим их в таблицу 'advertisers' 
     */
    public function confirmpubAction() {
        $url = $this->_getParam('param');
        $obj = new Application_Model_Registration();
        $check = $obj->checkConfirmPub($url);
        if ($check != null) {
            $data = array(
                'login' => $check['login'],
                'password' => $check['password'],
                'email' => $check['email'],
                'phone' => $check['phone'],
                'company_name' => $check['company_name'],
                'website' => $check['website'],
                'address' => $check['address'],
                'id_role' => $check['id_role'],
                'id_spec_status' => $check['id_spec_status'],
                'id_status' => $check['id_status']
            );
            $obj->registerPub($data);
            $obj->deleteTemporaryPub($url);
            $this->_helper->redirector('successconfirmpub', 'registration');
        }
    }

    public function successconfirmadverAction() {
        
    }

    public function successconfirmpubAction() {
        
    }

}

?>
